package com.xinqi.modules.course.clazz.convert;

import com.xinqi.common.mapstruct.CommonConvertConfig;
import com.xinqi.modules.course.clazz.domain.ClassOperationLogEntity;
import com.xinqi.modules.course.clazz.domain.ClassStudentEntity;
import com.xinqi.modules.course.clazz.dto.req.ClassOperationLogCreateDTO;
import com.xinqi.modules.course.clazz.dto.req.ClassOperationLogUpdateDTO;
import com.xinqi.modules.course.clazz.dto.rsp.ClassOperationLogResultDTO;
import org.mapstruct.Mapper;
import org.mapstruct.MappingTarget;

/**
 * 班级日志转换
 *
 * @author: system
 * @date: 2023/01/17
 */
@Mapper(config = CommonConvertConfig.class)
public abstract class ClassOperationLogConvert {
    public abstract ClassOperationLogEntity create(ClassOperationLogCreateDTO s);

    public abstract ClassOperationLogEntity update(ClassOperationLogUpdateDTO s, @MappingTarget ClassOperationLogEntity t);

    public abstract ClassOperationLogEntity update(ClassOperationLogUpdateDTO s);

    public abstract ClassOperationLogResultDTO convert(ClassOperationLogEntity s);

    public abstract ClassOperationLogEntity convert(Long courseId, Long classId, Long studentId, Long auditId);

    public abstract ClassOperationLogEntity convert(ClassStudentEntity s);
}
